<template>
  <div class="wrapper">
    <!-- header部分 -->
    <header>
      <BackButton></BackButton>
      <p>在线支付</p>
    </header>
    <!-- 订单信息部分 -->
    <h3>订单信息：</h3>
    <div class="order-info">
      <p>
        {{ orders.business.businessName }}
        <i class="fa fa-caret-down" @click="detailetShow"></i>
      </p>
      <p>&#165;{{ orders.orderTotal }}</p>
    </div>
    <!-- 订单明细部分 -->
    <ul class="order-detailet" v-show="isShowDetailet">
      <li v-for="item in orders.list" :key="item.id">
        <p>{{ item.food.foodName }} x {{ item.quantity }}</p>
        <p>&#165;{{ item.food.foodPrice * item.quantity }}</p>
      </li>
      <li>
        <p>配送费</p>
        <p>&#165;{{ orders.business.deliveryPrice }}</p>
      </li>
    </ul>
    <!-- 支付方式部分 -->
    <ul class="payment-type">
      <li @click="selectPayment('alipay')">
        <img src="../assets/alipay.png">
        <!-- 对勾图标根据选中状态进行渲染 -->
        <i class="fa fa-check-circle" v-if="selectedPayment === 'alipay'"></i>
      </li>
      <li @click="selectPayment('wechat')">
        <img src="../assets/wechat.png">
        <!-- 对勾图标根据选中状态进行渲染 -->
        <i class="fa fa-check-circle" v-if="selectedPayment === 'wechat'"></i>
      </li>
    </ul>
    <div class="payment-button">
      <button @click="confirmPayment">确认支付</button>
    </div>
    <!-- 底部菜单部分 -->
    <Footer></Footer>
  </div>
</template>

<script>
import Footer from '../components/Footer.vue';
import BackButton from '@/components/backButton.vue';

export default {
  name: 'Payment',
  data() {
    return {
      orderId: this.$route.query.orderId, // 获取路由中的 orderId 参数
      orders: {
        business: {}
      },
      isShowDetailet: false,
      selectedPayment: 'alipay' // 默认选中的支付方式
    };
  },
  created() {
    this.fetchOrderDetails();
  },
  methods: {
    // 获取订单详情
    fetchOrderDetails() {
      this.$axios.get(`/orders/${this.orderId}`)
          .then(response => {
            if (response.data.state === 204) {
              alert(response.data.message); // 在页面上提示用户订单不存在
            } else {
              this.orders = response.data.data; // 成功获取数据
            }
          })
          .catch(error => {
            console.error('获取订单详情失败:', error);
          });
    },
    // 显示或隐藏订单明细
    detailetShow() {
      this.isShowDetailet = !this.isShowDetailet;
    },
    // 确认支付
    confirmPayment() {
      this.$axios.put(`/orders/payment/${this.orderId}`)
          .then(response => {
            if (response.data.state === 200) {
              alert('支付成功');
              this.$router.push('/index'); // 支付成功后跳转到 index.vue
            } else {
              alert('支付失败，请重试');
            }
          })
          .catch(error => {
            console.error('支付请求失败:', error);
            alert('支付请求失败，请检查网络连接');
          });
    },
    // 选择支付方式
    selectPayment(paymentType) {
      this.selectedPayment = paymentType; // 更新选中的支付方式
    }
  },
  components: {
    Footer,
    BackButton
  }
};
</script>

<style scoped>
/* 原样保留现有的 CSS 样式 */
.wrapper {
  width: 100%;
  height: 100%;
}

.wrapper header {
  width: 100%;
  height: 12vw;
  background-color: #0097FF;
  color: #fff;
  font-size: 4.8vw;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
  display: flex;
  justify-content: center;
  align-items: center;
}

.wrapper h3 {
  margin-top: 12vw;
  box-sizing: border-box;
  padding: 4vw 4vw 0;
  font-size: 4vw;
  font-weight: 300;
  color: #999;
}

.wrapper .order-info {
  box-sizing: border-box;
  padding: 4vw;
  font-size: 4vw;
  color: #666;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .order-info p:last-child {
  color: orangered;
}

.wrapper .order-detailet {
  width: 100%;
}

.wrapper .order-detailet li {
  width: 100%;
  box-sizing: border-box;
  padding: 1vw 4vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .order-detailet li p {
  font-size: 3vw;
  color: #666;
}

.wrapper .payment-type {
  width: 100%;
}

.wrapper .payment-type li {
  width: 100%;
  box-sizing: border-box;
  padding: 4vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  position: relative;
}

.wrapper .payment-type li img {
  width: 33vw;
  height: 8.9vw;
}

.wrapper .payment-type li .fa-check-circle {
  font-size: 5vw;
  color: #38CA73;
  position: absolute;
  right: 10vw;
  top: 50%;
  transform: translateY(-50%);
}

.wrapper .payment-button {
  width: 100%;
  box-sizing: border-box;
  padding: 4vw;
}

.wrapper .payment-button button {
  width: 100%;
  height: 10vw;
  border: none;
  outline: none;
  border-radius: 4px;
  background-color: #38CA73;
  color: #fff;
}
</style>
